package zzs.generalframework.console.core.parameter.commonparameter.recordstatus.service;

import java.util.List;

import zzs.generalframework.common.core.parameter.commonparameter.recordstatus.RecordStatusBO;
import zzs.generalframework.common.core.parameter.commonparameter.recordstatus.RecordStatusInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.parameter.commonparameter.recordstatus.service
 * @author zzs
 * @date 2018年2月2日
 * @version 1.0
 */
public interface IRecordStatusService
{
	/**
	 * 保存记录状态信息
	 *
	 * @param recordStatus
	 * @return
	 */
	public ConsoleReturnBO saveRecordStatus(RecordStatusBO recordStatusBO);

	/**
	 * 保存记录状态信息列表
	 *
	 * @param recordStatusBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveRecordStatus(List<RecordStatusBO> recordStatusBOList) throws ConsoleException;

	/**
	 * 获取记录状态信息
	 *
	 * @param recordStatusInfo
	 * @return
	 */
	public ConsoleReturnBO getRecordStatus(RecordStatusInfo recordStatusInfo);

	/**
	 * 获取记录状态信息列表
	 *
	 * @param recordStatusInfo
	 * @return
	 */
	public ConsoleReturnBO listRecordStatus(RecordStatusInfo recordStatusInfo);

	/**
	 * 更新记录状态信息
	 *
	 * @param recordStatusBO
	 * @return
	 */
	public ConsoleReturnBO updateRecordStatus(RecordStatusBO recordStatusBO);

	/**
	 * 更新记录状态信息列表
	 *
	 * @param recordStatusBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateRecordStatus(List<RecordStatusBO> recordStatusBOList) throws ConsoleException;

	/**
	 * 删除记录状态信息
	 *
	 * @param recordStatusBO
	 * @return
	 */
	public ConsoleReturnBO removeRecordStatus(RecordStatusBO recordStatusBO);

	/**
	 * 删除记录状态信息列表
	 *
	 * @param recordStatusBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeRecordStatus(List<RecordStatusBO> recordStatusBOList) throws ConsoleException;

	/**
	 * 统计记录状态信息
	 *
	 * @param recordStatusBO
	 * @return
	 */
	public Long countRecordStatus(RecordStatusBO recordStatusBO);

}
